package map;

import java.util.*;

/**
 *
 */
public class MapDemo03 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap();
        map.put("数学", 120);
        map.put("政治", 119);
        map.put("化学", 125);
        map.put("物理", 138);
        map.put("英语", 67);
        System.out.println(map);
        System.out.println("-----------key----------");
        // 1 遍历所有key
        Set<String> keySet=map.keySet();// a. 调用keySet()方法 返回一个装着所有的key的set集合
       // b 遍历集合
        for(String key:keySet){
           int value =  map.get(key);
            System.out.println("key:"+key+",value:"+value);
        }
        System.out.println("-------values-----------");
        //2 遍历所有的value
        Collection<Integer> values = map.values();// a. 调用values() 方法，返回一个collection集合，装所有的value值
        //b. 遍历集合
        for(Integer value : values){
            System.out.println("value:"+value);
        }
        // 3 遍历所有的键值对
        // a. 调用entrySet()方法，返回set集合，集合装的是所有的k-v组成的键值对对象entry
        Set<Map.Entry<String,Integer>> entrySet =map.entrySet();
        // b. 遍历set集合，每次出来的是entry对象，该对象提供getKey() ,getValue()方法 拿到值
        for(Map.Entry<String,Integer> entry : entrySet){
          String key= entry.getKey();
          int value = entry.getValue();
            System.out.println(key+":"+value);
        }
        System.out.println("-----题-----");
        // 题： 如何统计字符串中字符出现的次数，
        // 比如： abcabcdef  ，统计出 a 2，b 2，c 2，d 1 ，e 1 ，f 1
        String str ="thinkingjava";
        char[] chars = str.toCharArray();
       // System.out.println(Arrays.toString(chars));
        // [h, e, l, l, o,  , j, a, v, a]
        //{ h:1，e ：1，l：2，o:1, :1, j:1,a:2,v:1}
        Map<Character,Integer> map1 = new HashMap<>();
        for(int i=0;i<chars.length;i++){
            //chars[i];
            if(map1.containsKey(chars[i])){// 有 这个key
               /*int value =  map1.get(chars[i]);
               value+=1;
               map1.put(chars[i],value);*/
                map1.put(chars[i] , map1.get(chars[i])+1);
            }else {// 没有这个key
                map1.put(chars[i],1);
            }
        }
        System.out.println(map1);



    }
}
